//#define _CRT_SECURE_NO_WARNINGS 1
//
//#include<bits/stdc++.h>
//
//using namespace std;
//
//const int N = 2e5 + 10;
//
//vector<vector<int>> edges(N);
//int in[N];
//
//queue<int> q;
//
//vector<int> ret;
//
//int main()
//{
//	int n, m, a, b,pos = 0;
//	cin >> n >> m;
//
//	while (m--)
//	{
//		cin >> a >> b;
//		edges[a].push_back(b);
//		in[b]++;
//	}
//
//	for (int i = 1; i <= n; i++)
//		if (in[i] == 0)
//			q.push(i);
//
//	while (!q.empty())
//	{
//		int k = q.front();
//		q.pop();
//		ret.push_back(k);
//		for (auto t : edges[k])
//		{
//			in[t]--;
//			if (in[t] == 0)
//			{
//				q.push(t);
//			}
//		}
//	}
//
//	if (ret.size() == n)
//	{
//		for (int i = 0; i < ret.size()-1; i++)
//			cout << ret[i] << " ";
//		cout << ret[ret.size()-1];
//	}
//	else
//		cout << -1 << endl;
//	
//
//	return 0;
//}
//
//
//class StringFormat {
//public:
//	string formatString(string A, int n, vector<char> arg, int m) {
//		string ret;
//		int pos = 0;
//		for (int i = 0; i < n; i++)
//		{
//			if (A[i] != '%')
//				ret += A[i];
//			else
//			{
//				ret += arg[pos++];
//				i++;
//			}
//		}
//		while (pos < m)
//		{
//			ret += arg[pos++];
//		}
//		return ret;
//	}
//};


//
//
//#include<bits/stdc++.h>
//
//using namespace std;
//
//bool isprim(int n)
//{
//	if (n < 2)return false;
//	for (int i = 2; i <= sqrt(n); i++)
//		if (n % i == 0)return false;
//	return true;
//}
//
//int check(int n)
//{
//	vector<int> num;
//	while (n)
//	{
//		num.push_back(n % 10);
//		n /= 10;
//	}
//
//	for (int i = 0; i < num.size(); i++)
//	{
//		for (int j = 0; j < num.size(); j++)
//		{
//			if (i != j && num[i] != 0)
//			{
//				if (isprim(num[i] * 10 + num[j]))
//					return 1;
//			}
//		}
//	}
//	return 0;
//}
//
//int main()
//{
//	int a, b;
//	cin >> a >> b;
//	int ret = 0;
//	for (int i = max(a,10); i <= b; i++)
//	{
//		ret += check(i);
//	}
//	cout << ret;
//
//	return 0;
//}




//#include<bits/stdc++.h>
//
//using namespace std;
//
//int main()
//{
//	string s, res;
//	int max = 0,count = 0;
//	int N;
//	cin >> s;
//	cin >> N;
//	int begin = -1;
//	int r = 0, l = 0;
//	while (r < s.size())
//	{
//		if (s[r] == 'C' || s[r] == 'G')
//			count++;
//
//		while (r - l + 1 > N)
//		{
//			if (s[l] == 'C' || s[l] == 'G')
//				count--;
//			l++;
//		}
//
//		if ((r-l + 1 == N) && max < count)
//		{
//			begin = l;
//			max = count;
//		}
//
//		r++;
//	}
//
//	cout << s.substr(begin, N) << endl;
//
//	return 0;
//}




#include<bits/stdc++.h>

using namespace std;

int main()
{
	string s;
	cin >> s;
	long long ret = 0;

	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] % 2 == 0)
			ret = ret * 10 + 0;
		else
			ret = ret * 10 + 1;
	}

	cout << ret;

	return 0;
}